Top 10k strings from Font Edit (19xx)(-)[b].z80 in <root> / bin / z80 / software / Sinclair Spectrum Collection TOSEC.exe / Sinclair ZX Spectrum - Utilities & Educational / Sinclair ZX Spectrum - Utilities & Educational - [Z80] (TOSEC-v2007-01-01) /

Back to the directory listing

  10 A,(CURCHR)
   7 A,(CHRSZE)
   4 A,(Y_COOR)
   4 A,(X_COOR)
   4 (Y_COOR),A
   4 (X_COOR),A
   3 A,(IX+#00)
   3 ; Yep, so return
   3 (IX+#00),A
   2 ; wide char?
   2 ; rotate bit pattern
   2 ; repeat for rest of line
   2 ; YEP, multiply with 16
   2 ; Upper left corner of grid on screen
   2 ; Scan keys b-space
   2 ; Retrieve old start position
   2 ; Retrieve counter
   2 ; Next byte in pattern
   2 ; If not finished, do next line
   2 ; IX=address of char, BC=number of bytes
   2 ; Get size of char
   2 ; Find addr of next screen position
   2 ; Do one line
   2 (CURCHR),A
   2 (CHRSZE),A
   1 byte 2  byte 3
   1 byte 14 byte 15  byte 30 byte 31
   1 byte 0  byte 1
   1 NZ,CHK_END
   1 NZ, MENUG1
   1 E,(IX+#00)
   1 AT, #4, #15
   1 AT, #12, #12
   1 AT, #11, #12
   1 AT, #10, #12
   1 AT, #0F, #12
   1 AT, #0E, #12
   1 AT, #0D, #12
   1 AT, #0C, #12
   1 AT, #0B, #12
   1 AT, #0A, #12
   1 AT, #09, #12
   1 AT, #08, #12
   1 AT, #07, #12
   1 AT, #06, #12
   1 AT, #03, #15
   1 AT, #01, #06
   1 AT, #00, #08
   1 ; xor this pixel value with previous
   1 ; wrap around when right edge reached
   1 ; width = width - 8
   1 ; wide char
   1 ; well then it must be 16x16, and then multiply with 32 
   1 ; we can just test in one flow, since MOVES won't allow e.g O/P pressed
   1 ; use B as counter
   1 ; update width counter
   1 ; turn on flash of that square
   1 ; turn on cursor
   1 ; turn off flash of that square
   1 ; to get the start address, use A-65536*INT(A / 65536)
   1 ; the sides
   1 ; tall char?
   1 ; single width char
   1 ; returns the attribute address for current x,y in HL
   1 ; return result in A
   1 ; reset cursor pos.
   1 ; print char to the right of the grid
   1 ; print char in the frame
   1 ; now xor the pixel-value
   1 ; now find the right bit
   1 ; not Q=up
   1 ; not P=right
   1 ; not O=left
   1 ; not A=down
   1 ; no moves, just jump back to go around again
   1 ; next pixel
   1 ; jump back for last 4 pixels, if neccesary
   1 ; high char
   1 ; high bit E into CARRY
   1 ; first check for SPACE
   1 ; fill with 2 zero bits
   1 ; e.g: LET A=USR xxxxx
   1 ; current size of the characters.
   1 ; continue for tall char
   1 ; calculate address for next row in d_file
   1 ; and to get last used char size, use INT(A / 65536)
   1 ; and the char in temporary store
   1 ; and show what's in the temporary store
   1 ; and print the chars below
   1 ; and once more
   1 ; and jump back to fetch data for column
   1 ; Yep, so add 96 to starting char
   1 ; Yellow paper
   1 ; YES, SO JUMP TO END
   1 ; YEP, multiply with 8
   1 ; Where to find the grid pattern
   1 ; When returning to BASIC the BC-register contains the value :-
   1 ; When copying chars from the rom, they will be expanded to match the
   1 ; What to do?
   1 ; What size?
   1 ; What does the char data says?
   1 ; Well, first draw something
   1 ; Well then it must be 8x8 bit
   1 ; We now have the 'grey' pattern in TMPSTO
   1 ; WAS BIT-8 SET?
   1 ; Use size 0=8x8 bit
   1 ; Use C as nibble counter
   1 ; Use C as 'height' counter
   1 ; Use B as height counter
   1 ; Upper bar
   1 ; Update height counter
   1 ; UPDATE TEXT-POINTER
   1 ; Title message
   1 ; This part tests the keys 6-0 for action
   1 ; This part tests the keys 1-5 for action
   1 ; This part test for the cursor movement keys and returns result in A
   1 ; This part handles the symbol shift functions
   1 ; This font/sprite editor supports the following size of images:
   1 ; These functions turns the editing cursor on/off
   1 ; The coordinates for editing cursor
   1 ; The character we are working on
   1 ; The bit was set, so jump
   1 ; Test the keys 6-0
   1 ; Test the keys 1-5
   1 ; Test for cursor movement keys
   1 ; Store new attribute
   1 ; Starts with space
   1 ; Starting char is
   1 ; Starting address in D_FILE for first char
   1 ; Start with editing 'SPACE'
   1 ; Skip return address
   1 ; Skip data-area
   1 ; Show current char in full size
   1 ; Show current ascii number and 'Spectrum' character
   1 ; Show 11 chars
   1 ; Scan the keys 6-0
   1 ; Scan keys y-p
   1 ; Scan keys q-t
   1 ; Scan keys h-enter
   1 ; Scan keys caps-v
   1 ; Scan keys a-g
   1 ; Scan keys 6-0
   1 ; Scan keys 1-0
   1 ; Save screen position
   1 ; Save d_file address
   1 ; SYMBOL SHIFT pressed
   1 ; STORES CURRENT CHAR IN TEMPORARY MEMORY
   1 ; SPACE pressed?
   1 ; SPACE pressed so skip the test for CAPS
   1 ; SHOWS SOME CHARS AT THE LOWER LINES
   1 ; SHOW THE MAIN SCREEN
   1 ; Reset the cursor position
   1 ; Reset pattern pointer?
   1 ; Reset movement result
   1 ; Reset bit=WHITE PAPER
   1 ; RETURNS TO BASIC
   1 ; RETURN ADDRESS=TEXT
   1 ; RETRIEVE FROM TEMPORARY STORE TO CURRENT CHAR
   1 ; Q pressed to skip the test for down=A
   1 ; Print char in the grid
   1 ; Preserve lower 2 bits
   1 ; Preserve BRIGHT and INK, and use black PAPER
   1 ; Place the font-data after the code
   1 ; PRINT THE CHAR IN 'A' AT ADDRESS 'HL' IN D_FILE
   1 ; PRINT CURRENT CHAR IN THE GRID AND INFORM USER OF CURRENT ASCII NUMBER
   1 ; PRINT A MESSAGE, LAST CHARACTER WITH BIT 7=1 
   1 ; P=right?
   1 ; P pressed so skip the test for left=O
   1 ; OPEN "S" CHANNEL
   1 ; Now HL=d_file, BC=size, IX=address
   1 ; No, so continue
   1 ; Next screen square in the line
   1 ; Next column in the wide char
   1 ; Misc info
   1 ; Menu options
   1 ; MISC CONTROL-CODES FOR PRINTING
   1 ; MASK OUT EVENTUALLY HIGH-BIT
   1 ; MAIN ENTRY
   1 ; Lower bar
   1 ; If the bit was 0, then no bright
   1 ; If '9' pressed change char size
   1 ; If '0' pressed then return to basic
   1 ; IS CALLED THIS WAY:  CALL     PRINTM
   1 ; INVERSE THE CURRENT CHAR
   1 ; INITALIZE SOME VARIABLES
   1 ; Here starts the keyboard scanning
   1 ; HL=addr in ROM
   1 ; HERE COMES THE KEY-SCANNING ROUTINES
   1 ; Get size in BC
   1 ; Get current attribute of pixel
   1 ; GET CURRENT CHAR FROM THE ROM
   1 ; GET CHAR. TO PRINT
   1 ; GET ALL CHARS FROM ROM
   1 ; Freeware 1994 by Thomas Kjaer, [email protected]
   1 ; For testing with DEVPAC
   1 ; For temporary store of a character
   1 ; For Spectrum 48K/128K/128K +2/+3/+2A
   1 ; For Ax8,  size 0
   1 ; For Ax32, size 3
   1 ; For Ax16, size 2 & 1
   1 ; Fetch from pattern
   1 ; Fetch from char
   1 ; Fetch address of current char
   1 ; Fetch addr of current char, return address in IX
   1 ; FONT-EDITOR v2.0
   1 ; FINDS THE IX=ADDRESS OF CURRENT CHAR & BC=SIZE IN BYTES
   1 ; FIND SIZE OF CHAR, RETURN WITH BC=WIDTH, HEIGHT
   1 ; ELSE bright on, for this square
   1 ; Draw the grid, at the right size
   1 ; Draw attribute box around current character
   1 ; Do the grid pattern
   1 ; Do all rows
   1 ; DE=ADDRESS OF PROGRAM CONTINUATION
   1 ; DATA AND VARIABLES
   1 ; Current size of chars
   1 ; Check for wide chars
   1 ; Check for wide char
   1 ; CL_ALL, CLEAR SCREEN
   1 ; CLEAR THE GRID AND THE CHAR
   1 ; CHANGE SIZE OF THE CHARS BY CYCLING THROUGH THE SIZES
   1 ; CARRY into low bit A
   1 ; CAPS pressed?
   1 ; Below 32?
   1 ; BASE ADDR FOR SPACE
   1 ; B=width, C=height
   1 ; B=width, C=Height
   1 ; Assemble with Hisoft's DEVPAC : A,2000
   1 ; ASCII +/- 8/1
   1 ; AND PRINT IT
   1 ; 8x8 bit=0
   1 ; 8x16 bit?
   1 ; 8 bits wide, just store it
   1 ; 65536*char_size+start_address_of_char_data
   1 ; 5 Chars to the left of current
   1 ; 4 pixels at a time in ROM char
   1 ; 2nd column in wide chars
   1 ; 2nd column
   1 ; 16x8 bit?
   1 ; 16x16 bit?
   1 ; 'SS+Y' = ASCII + 8
   1 ; 'SS+T' = ASCII + 1
   1 ; 'SS+R' = ASCII - 1
   1 ; 'SS+E' = ASCII - 8
   1 ; '8' = ALL CHARS FROM ROM
   1 ; '7' = CURRENT CHAR FROM ROM
   1 ; '6' = GET FROM TEMPORARY STORE
   1 ; '5' = STORE
   1 ; '4' = FLIP HORIZONTAL
   1 ; '3' = FLIP VERTICAL
   1 ; '2' = INVERSE
   1 ; '1' = CLEAR
   1 ;                      DEFM     "Message"
   1 ;                      DEFB     "s"+#80
   1 ;                      CODE CONTINUES HERE
   1 8x16 bit=1
   1 16x8 bit=2
   1 (PRT_NO),A
   1 (IX+#00),E
   1 #FF,#81,#81,#81,#81,#81,#81,#FF
   1 #AA,#55,#AA,#55,#AA,#55,#AA,#55
   1 #55,#AA,#55,#AA,#55,#AA,#55,#AA
   1 #00, AT, #4, #15+#80
   1 "SYMB SHIFT:-"
   1 "SPC :Set/Reset"
   1 "R/T :Ascii +/-"
   1 "OPQA:Roll line"
   1 "OPQA:Roll char"
   1 "OPQA:Movement"
   1 "FONT-EDITOR v1.0"
   1 "E/Y : '' +/- "
   1 "ASCII  M"
   1 "9:Size 0:End"
   1 "7:Rom  8:Roms"
   1 "5:Sto  6:Get"
   1 "3:FlpV 4:FlpH"
   1 "1:Clr  2:Inv"
   1 "(p)-94 Thomas Kjae"
   1  byte 2  byte 3
   1  byte 0  byte 1
   1  16x16 bit=3
   1  ....    ....
   1   ....    ....
   1         RST
   1         PUSH
   1         LD
   1         JR
   1         INC
   1         BIT